In any organization it may be the case that there are multiple disparate software applications being operated by or on behalf of the organization. For example, in an insurance organization there may be software applications to effectuate issuance of insurance policies, servicing of insurance claims, determinations of insurance risks, and the like. Additionally, there may be software applications for operating a network information site on behalf of the insurance organization, for maintaining human resources information, for tracking customers, for operating telephones and other communications systems, for automating building operations, for tracking finances, for managing investments, for managing legal interests, and the like.
As may be appreciated, each of the disparate applications should be monitored by the organization to ensure that the application is running correctly and efficiently, among other things. Typically, although by no means exclusively, an application may be monitored in terms of availability, performance, and capacity. Of particular interest is availability, which is to say that the application is running and able to perform the intended function thereof. As known, such availability is defined according to a present state of the application, and accordingly such availability should be monitored on a real-time or near-real-time basis. Availability of an application is usually determined based on monitoring various ones of the components of the application. For example, an application may contain a number of incoming and outgoing queues, a number of registers, a number of processes, a number of data stores, a number of memory spaces, etc., and such queues, registers, processes, data stores, memory spaces, etc., may each be monitored.
Notably, the aforementioned disparate software applications may be characterized as being heterogeneous in that such applications vary widely in terms of their functionality and their operational requirements, among other things. Nevertheless, all of such applications of the organization are likely expected to be monitored on behalf of the organization by a single software operations group or the like. However, such monitoring is made more difficult due to the heterogeneous nature of the applications. That is, each software application likely has a monitoring function or ‘console’ to monitor such application, and all of the monitoring consoles are closely tied to their respective applications. As a result, each monitoring console operates separately from other monitoring consoles and data from all of the monitoring consoles cannot easily be aggregated so as to be viewable by way of a single monitoring console.
Accordingly, a need exists for a system and method for monitoring multiple heterogeneous software applications by gathering monitoring data from each application in a homogenous form so that the gathered data can be presented in a single coherent form. More particularly, a need exists for such a system and method whereby each heterogeneous software application as developed or acquired can be monitored with relative ease.